<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>canvas分析图片拖动验证码</title>
		<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
		<style type="text/css">
			#color {
				width: 150px;
				height: 150px;
			}
		</style>
	</head>

	<body>
		<input type="text" id="src" /> <button id="analyzeBtn">analyze</button>
		<hr />
		<canvas id="MyCanvas">
			
		</canvas>
		<div id="color"></div>
		<hr />		
		<script type="text/javascript">
			$('#analyzeBtn').on('click',analyze)
			function analyze() {
				var xArr = [];
				var c = document.getElementById("MyCanvas"),
					ctx = c.getContext("2d"),
					image = new Image();
//				image.src = "./img/img3.png";
//				image.src="data:image/jpeg;base64,"+
//				"/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACgAQQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDqi1MJpCaQmqPkQB5HpkVbqmTVhH3qD36H60FRHZoJpCaM0FhmjNJmkJpAKTTSaCaQmmIM0hNBNNJoADTSaUmmk0CEJphpxNMJoJEJppNKTTSaBCE00mgmmk0EgTTSaCaQmgBSaTNBNNJoEGaCaM0maALcLlohnqOKeTUMAIiz6kmnk0GsdhSaQmkJpCaBgTSE0E00mgQuaKTNFAGhmkzSE0hNBIE0qOUbI5B6im5ozQIthgVBByDQTVRHKHI5B6irAYMoIOQaRpGVxSaTNBNGaYwzTaWkJoAQmgmimk0ABNNJoJpCaBDSaaTSk00mgljSaaTSk00mgkaTTSaUmmk0CAmm5oJozQICaTNAyTgDJPQCpBAx5Y49upoGlciJpyRlznovc+v0qYRRr2yff/CpCaClHuHAAA4A4ApCaQmkJoKAmkJpCaQmgAJpCaCaQmgQZopuaKBGkTSE0E00mgQE0E0E00mgBSaVHKNkcg9RTSaTNAFsEMoKnINGaqpIUbPUHqKsBgygqcg0Gidxc0E0E0hNIYZpKQmkJpiAmmE04mmE0CEJphNONRs4HU/gKCWBNMJppcnoMCmkk9aCWxSRTSaM0hNAgJp8cZk56KOp/wAKaiF2A6DqT7Va4AAAwBwBQVFXBVCDCjHqe5oJoJppNBoKTTSaCaQmgQE0hNITSE0CAmkJoJppNAgJoJpCaQmgBc0U3NFAGkTSE0hNGaBATSE0ZpCaAAmkJoJpCaBCk0qSlD6g9RTCaQmgFoXQwcZU5FITVMEg5U4PqKeJ3HXB+ooL5u5YzSGoDcH0H61G0rt1OB6DigOZE7OE+8QPbvUTT/3R+JqLNJmglyYrOW6n/CkzTc0ZoJAmkJoJpCaAFzUlvbzXcohgjLyEEhQQOB1NRZrU8N/8hkf9cnoHFXaQQ6NqCKc2xBJ/vDpUn9kagf8Al2b/AL6FdUBTwKR1Kktjkv7G1H/n2b/voUf2LqX/AD6t/wB9CuuApwFA/ZI47+xNTP8Ay6N/30KT+wtUP/Lo3/fQrtAKcBQV7BHE/wBg6qf+XNv++hSf2Bqv/Pk3/fY/xruAKeBQUsPE4P8A4R7Vz/y5N/32P8azpYpIJpIZRtkjJVhwcGvTwK851k/8Ty//AOu5pmVakoJNFMmmk0hNBNBzhmikzRQI0yaaTQTSE0CDNGaQmkJoAXNNJozRmgAJpCaQmkJoAUmobq6is7Z7iZsIgyf8KzZPEmmrIUEjvg4yiEiqOr6lbalZCGEvneGO5ccc0GsaMm1zLQWPxdC0wWS1dIifv7skfUYroQ4dQykFSMgjvXCtajZjFb1prdpa2MEMhk3RoFOFz0FI1rUY2Xs0bpNNJrNtddsbucQxyFZD0DrjNaOaZzSi4uzQuaTNGaTNBIE0hNGaTNAgzWt4aBOtKAMnynrIzQHZGyjsp6ZBIP5igqLs7npIRv7p/I04I3ofyNebpczI4JnlIPB/eH/GrJnm/wCe0v8A32f8aR0Ksux6AEb0P5GnYIODwR2rzszzf895f++z/jXdaSSdGsiSSTECSTknr1JoNqc+d2LYFOVSThQSfQUoFY3ilmTQyUZkPnIMqxBxk0GzfLFs3BG/91vyNOET/wB1vyNeWm4n/wCfib/v6f8AGg3E/wDz8z/9/W/xpmH1pfynqojf+635GvM9byNe1D/ru1VDcz/8/M//AH9b/GoyxZiWJJPJJJJJ9ST1oM61dVElawE0hNITQTQc4ZopuaKBGpmkzSE0maAFJpCaCaQmgAJpM0hNITQIdmqepsRpd2QcEQP/AOgmrWaiuIhcW0sDEgSIUJHbIxQOLs0zgrSNCorQWMDpV1/DJgjLW1wzOOiuBz+NZ0MhPBBBHBFI9BzU9YsmK8VG0QPapc0maCbme0Oy7hZeCJFII+td3muNkGHV8Z2kGtBPFASYLcW2yMnBdWzj8MUEVoSqJcvQ6EmkzSKwZQynIIyCO9GaZxBmgmjNNJABJ6Dk0ALmkGXbaoLN6AEn8hXQRaNaadpf9paoGlJAK26HAyegJqi+v3igrZrDYx9ALdACB7kjNBbhy/EyKLRdUnAKWMwX+84Cj8yRVtNFuVUC4ubGEjg7rgE/iBmsma5nuCWnuJZSepdyf0JpkQAYgADI9KATiuhs/wBmWi/f1uxHqFVjXY6YiJpdqkcolRYgFkAIDjnkCvOya9D0Yf8AEisP+uIpHXh2nJ2RdArL8RwRTaOY5rqO1TzUPmOpIyCcDA9a1wKw/F4x4fb/AK7x/wAzQdNTSDOZGjwyf6vXNNY+jMy/zFL/AMI5qD/6mSyn/wCuV0pJ/lWQcd6aVXOcDPrjmmedzR7fj/w5oXGjaragmbTrlQOrBCw/MZqgSNxU8MOoPBH1Bqe3v720Oba8uIf9yUgfkTWlH4lMuF1u0g1C3H3nKBZVA7gjGf0oBKm+tvX+v0MUmmk10/iDwvHYWf8AaWnSO9mQC8b8sgPQgnqPY1y5NAqlOVOXLIXNFNzRQZmoTSZoJpCaBhmjNNJozQICaQmgmgmgAzTc0E1U1I/8Sq85/wCWD/8AoJoGld2Jri5itojJM4VR69/pXILJ5k0kuMb3LY9MmqVrGCAzHJ96tRo886wQjLt09qR3RpKnfUs7xRkVZfQblYtyTo7j+DGP1rNjlOSrZDA4IPY0AmpfCySRwBVB4J7yYRQQuzE+nA+tWHlxPF/vj+ddrmgU6vsraEVtF5FrDCTny0Vc+uBipM0ZpM0zhbvqGaQ4IwehozSZoEdFpviOFbQWOqRGWELsEgXOVHQMvf6ipToGlajl9L1NEJ/5ZOwYD88EVy+aaQCQSBkdD3oNFV0tJXN+fwhq0XKLDMvqr7SfwIqk2havCwLadcEA9VAYfoaqw397bf6i8uI8dAHOPyJq9F4m1mMgC9Zxn/logNA70n3RA9ndp9+0uB9Yj/hXRWPidbLT7e1fTLtmhQIWHAP6VTTxjq6dTbt9YsfyNdlpl3Le6Xa3UmBJLEHYDOATmkdNCKbfJL8DAHjSH/oF3f5j/CqOs6+dY042kOmXkbF1fcVJGBn0FdwCfWszxBqlzpGkm7ttpk81EAkyRgk0zonCfK+aWnoefJpuoS/c0+6b6REVai8Na3N93TZl95CFH86tSeNdbfgSwJ9Iv8TVOXxNrUuQ2pTKPSMBf5Cg4rUO7f3GlB4F1aQZnltrdfUsXP6Vbi0vwxoTiXUNQW9nQ5EfDAH2Rc5/E1yM91c3JzcXM8pPXe5I/ImoQAowAAPQcUDVanHWMNfN3/A6PxB4sk1iI2ltE0FmSC5cgvLg8A9gPaucJoJppNBjUqSqS5pPUdmim5ooINTNNJo5JwOTThGT14/nQOw3NJmpRGo65NBjQ9v1oDlZBmjNStF/dPPoahIKnBGCO1ANWAmoriIXFtLCxwJEKE/UYqTNJmgSdjjP7D1WBiiQCRR0ZXUA/ma0dB069tb+SW6h2KYyqncDzkehroc0maRvLEykmmkGa5S/0rUpNTnlgt90TtkHeoz+tdXmkzTM6dR03dHJWmh38t5G1zGIokYMSXBJx2GK6zNGaTNAVKsqj1DNGaM0maDMM0maM0ZoEGaTNGaTNABmhOWHtzSU5O5/AUDW5ITXpmgj/intO/64CvMia9P0Af8AFO6d/wBcBQd2C+N+hoAVgeNePDh/67x/zNdCBXPeN+PDR/6+I/5mkd1Zfupeh52TQTSE0E0zxAJppNBNBNAATSE0hNBNAgzRTc0UAbnA4HAozSE8mkzQaDs0ZpuaM0AOzTHUOuOhHQ0uaM0AVSCpIIwR1FJmrDoHHoR0NViCCQRgjqKCGrBmkzRmkzQIM0maM0ZoAM0maM0maADNGaSjNAgzSZozSUAGaM0ZpuaAF68d6lHAA9KYgxz37UpNBSFJr1Lw8M+HNO/64CvKya9W8Oj/AIpvTf8Ar3FI78B8b9DSArnPHIx4ZP8A18R/zNdIBXOeOxjwyf8Ar4j/AJmg766/dS9Dzgmmk0E0hNM8ACaQmjNNzQA4mm5ozSZoELRSUUAbZPJpM0hPJ+tGaDUXNGaTNGaAFzRmkzRmgAzTXQOPQjoadmkzQBUIIJUjBHUUmasyIHX0I6GqxBBKkYI60ENWEzSZozRmgkM0maM0maACkzRRmgAzSUmaACelABmnKvdvwFKFA5PJoJoKSFJpCaCaQmgAJrXtvFOs2VrFbQXMawxKFRTEpIHYE1jE0E0FRnKLvF2N7/hNNf8A+fuL/vwtVNQ8R6rqtr9lvLiN4dwbCxBTkdDkVlk0hNBTrVGrOT+8CaM03NGaDIM0ZpM0ZoEGabmjNGaAFopuaKBH/9n/2P/gABBKRklGAAECAAABAAEAAP/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAKABBAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP1PuLz/AD/+r8eenHbNY0lx+v8A9b6f0/GopJP89ye5J5/z+lWST/PYDuSeP8/r6B/i+SxSfPF/zy+0WH8znv6fp716pXkMkn1OT+f/ANb/AOtxXoOn6h/aFnFdHmX/AI9rj/r+7fTrnP8AjQetlU4qWIhf946anCP8/s+bmV+nxrWz9DQ3n0H6/wCNQySY9sYycdP5+v8AntFJJ0wPXv8Aqf8APrzUfme36/8A1qmUuW2l7nsRlzX0tYk83/a/T/61R+Z7fr/9aoN49D+n+NVpJOv4g/4D9f5+9ZylzW0tYotSSfQYH5f/AF//AK3FUJJP89gO5J4/z+pJJ/nsB3JPH+f1qySY9sYycdP5+v8AntpGPLfW9zGUua2lrE28+g/X/GqkknTA9e/6n/PrzRJJ0wPXv+p/z681Qkk/z3J7knn/AD+lGNTp8/0IpO34/wBKqySfU5P5/wD1v/rcVLJJ/nsB3JPH+f1oSSdMD17/AKn/AD680HPU6fP9CrJJ9Bgfl/8AX/8ArcVmP1H0/qavSSf57k9yTz/n9Ma4k6/0/DjP5A/jQefU6fP9CK4k9P8A9Q55/wA+o698uST/AD2A7knj/P6y3En+T+PXn6/p71Qkkx7Yxk46fz9f89g4yKSTpgevf9T/AJ9eay5JOv4g/wCA/X+fvRJJ1/EH/Afr/P3qrJJ9Tk/n/wDW/wDrcUHHU6fP9Akk+pyfz/8Arf8A1uKoSSZ984ycdf5en+e5JJn3zjJx1/l6f571ZJP89ye5J5/z+gYyly20vclkk+gwPy/+v/8AW4qr5nt+v/1qJJOv4g/4D9f5+9VZJPqcn8//AK3/ANbigxF3n0H6/wCNQySY9sYycdP5+v8Ansbx6H9P8areZ7fr/wDWoA9Z8N6hLeaJF5nM1mP7N+n581sySfQYH5f/AF//AK3Fcl4Xjlj0fzv+fy4vrn8u3p/k9ua2ZJPqcn8//rf/AFuKD67AycsHhbu9sPS/FepLJJ/nsB3JPH+f1qySY9sYycdP5+v+e0UknTA9e/6n/PrzVWST6DA/L/6//wBbig0lLmtpawSSfQYH5f8A1/8A63FRSSf57k9yTz/n9IpJOv4g/wCA/X+fvVWST6nJ/P8A+t/9bigx9p5fj/wCTzfdvz/+vRVbePQ/p/jRQZn0D5vu35//AF6rbx6H9P8AGopJOmB69/1P+fXmqskn0GB+X/1//rcUHmyly20vclkkz75xk46/y9P895dP1SXS7kyx/vopv+PiDr36+3SqPm+6/n/9eofM9v1/+tQZwnKnJTg7TXwy7a3enW9l1PWo7y1uLaK6jl86Kbn/APX0PbH15yKJJPoMD8v/AK//ANbivKtP1S60ubzY/wB9FNj7RBjt/wDrOOv616DHeWt5bRXVvL50U349u3r9Oves/Z+f4f8ABPpMBjoYqlGN7V/+fN72bt9u0b3vvyrYlkk/z2A7knj/AD+se8+g/X/Gkkk+pyfz/wDrf/W4qLePQ/p/jVRjy31vc7JS5raWsG8eh/T/ABqlViqskn0GB+X/ANf/AOtxVEkUkn+e5Pck8/5/SKSTr+IP+A/X+fvUlUZJPqcn8/8A63/1uKDOp0+f6BJJ9Tk/n/8AW/8ArcVlySfQYH5f/X/+txUskmffOMnHX+Xp/nvQkk6/iD/gP1/n70HLKXNbS1irJJ9Tk/n/APW/+txVC4k9P/1Dnn/PqOveW4k6/wBPw4z+QP41l3En+T+PXn6/p70Hn1ZcvLpe9/wsVZJPqcn8/wD63/1uKy5JPoMD8v8A6/8A9birUknTA9e/6n/PrzWXJJ1/EH/Afr/P3oOGp0+f6FWST6nJ/P8A+t/9biqEkmffOMnHX+Xp/nvLJJ0wPXv+p/z681Qkk/z3J7knn/P6B59Tp8/0CST/AD3J7knn/P6Ud59B+v8AjSSSfU5P5/8A1v8A63FRbx6H9P8AGgmUua2lrBJJj2xjJx0/n6/57Reb/tfp/wDWoj82R/Kji86WX/j3ggP49D+P6mujt/Cd/JmXUJfsf/TD/j8vT/nOOOn60F0qNStK1OnUmlbmcI83Lfa6ut9bejOXkkz75xk46/y9P897+l6Pdao/mj9zp/8Ay8X3e66n/iWf/q6V2Nt4f0Wz/wCWX2yXv5/Of+4Z/k/hW1JJj2xjJx0/n6/57B6OHyyTkp4iVNw606cufm2esvdUbaW92XNd7W1P3caRRR/uYof9Gt4OnfjI6npUUknTA9e/6n/PrzVWST6DA/L/AOv/APW4qrJJ1/EH/Afr/P3oPYlLltpe5LJJ/nuT3JPP+f0qySf57AdyTx/n9YpJPqcn8/8A63/1uKqySdMD17/qf8+vNBnKXNbS1gkk6YHr3/U/59eaikkz75xk46/y9P8APeKST6DA/L/6/wD9biqsknX8Qf8AAfr/AD96DnlLmtpaxN5vuv5//XoqhvPoP1/xooMfaeX4/wDAPouST6DA/L/6/wD9biopJP8APcnuSef8/pFJJ1/EH/Afr/P3qrJJ9Tk/n/8AW/8ArcUHGEkn1OT+f/1v/rcVFJJj2xjJx0/n6/57EkmPbGMnHT+fr/ntVkkz75xk46/y9P8APcAlkk6YHr3/AFP+fXmpdP1SXSrnzo/30c3/AB8QdOvqeenbFUJJPoMD8v8A6/8A9biqvme36/8A1qBe0nSkp03yzV+WVr8uqvo972PWre5ivLWK5s5fOim4P+f8+vsE3j0P6f415rp+s3Wl3IlT99FNzcQenT6/pj8zXoNveWt5bRXVnL50U2f854PTknP5Cg+kwuNWIioTXJOFuaN+bl5ttbRvez1suhN5vuv5/wD16hkk6/iD/gP1/n70SSdfxB/wH6/z96ikk/z2A7knj/P64ylzW0tY65S5baXuJ5vu35//AF6hqvJJ0wPXv+p/z681Vkk+gwPy/wDr/wD1uK2MQkk+gwPy/wDr/wD1uKy5JPqcn8//AK3/ANbirUknX8Qf8B+v8/esu4k6/wBPw4z+QP40HHU6fP8AQiuJPT/9Q55/z6jr3xriT8P5/wAvf17+1Wrnv/n+7WDeahax/wCsl46eRB3xn/PqPQ0HnVWoq7drXt5/PoEkn0GB+X/1/wD63FZckn1OT+f/ANb/AOtxVC41SWTHlxeTF79f89PpVCS4lkz5nA/l2x6/X/Cg8+riIyikle7u9drWe1ut/vTJZLiL0+o9Pf29P8mqElx+n/1vr/X8Ki3j0P6f41FJJ0wPXv8Aqf8APrzQc0pc1tLWCSTpgevf9T/n15rZ0fR5tY/e/wDHnYQk/aL7/wCVY69u/wDOqGl6fLql5Fa/6mL/AI+bifHIsc/5+leoHyo0iiji8mKE/ZreHg9Ov9PyoPSy7BRxN61R3oKXLGLj/Ftq3e65eXS2kr8z2tqWdna6WnlafEITgi4nz/pt1/8AX6nHaiST6nJ/P/63/wBbiopJMe2MZOOn8/X/AD2oSSfQYH5f/X/+txQe9GUYRUIU6cIR+GNOPLbRXu7vm2Vtra9y1JJ0wPXv+p/z681Qkk/z3J7knn/P6RSSdfxB/wAB+v8AP3qKST/PYDuSeP8AP6hj7Ty/H/gBJJ/nsB3JPH+f1ikk+pyfz/8Arf8A1uKqySdMD17/AKn/AD681Vkk+gwPy/8Ar/8A1uKDGUuW2l7kskmffOMnHX+Xp/nvVkk/z3J7knn/AD+kUknX8Qf8B+v8/eqskn1OT+f/ANb/AOtxQc8pcttL3CST6nJ/P/63/wBbiopJMe2MZOOn8/X/AD2ikk6YHr3/AFP+fXmqskn0GB+X/wBf/wCtxQYlrzf9r9P/AK1FZfme36//AFqKAPpGSTHtjGTjp/P1/wA9opJOmB69/wBT/n15qKSTPvnGTjr/AC9P894d49D+n+NBzk0kmffOMnHX+Xp/nvQkk6/iD/gP1/n70eZ7fr/9aopJP89gO5J4/wA/qEyly20vcJJP89gO5J4/z+sUkn1OT+f/ANb/AOtxUUkmPbGMnHT+fr/ntFJJ0wPXv+p/z680GJLJJj2xjJx0/n6/57WtL1yXS3x/rrWb/j4g59+M+34d6xpJPoMD8v8A6/8A9biopJP89ye5J5/z+gXSqTo1YVqb5akL8rte17X++yPZLe8tdRQS2UvnRD/OOP8APP1qKSTpgevf9T/n15rxyO4ljfzbOTyZf+e8Hfv6/wBOc81sR+LNUjx5hhvOv+vt/XPp+oH51Mo81tbWPYp5tBr9/CSqaXnF83PstVZcvL/ildy6WZ6BvHof0/xpkvf/AHT/AFrgpPGF0P8Al1h4OP8AmI/pn9c/4Vg3niDVLz/WXRhi/wCeEH+h8H/635cVRUs1w6j7kKtSbtywjD4tE3rrbdW0d/LY7y81C10//j8uoYeB+4/5ffr+p/XoeTyV54o/6B8X/befPP16c/56Vy28eh/T/Gq3me36/wD1qDyKuYVptqnGnRp/ZhCO217tNc22mitrvcv3moXV4P3kv4/8uQHXj8KoeZ7fr/8AWqtvPoP1/wAah3j0P6f40HHKTm7v+u+pLJJ9Tk/n/wDW/wDrcVVkk6YHr3/U/wCfXmiSTpgevf8AU/59eaikkz75xk46/wAvT/PcJF8z2/X/AOtXReDvB/ij4ga3F4X8H6NNr2vTaffalb6TBcabZ/6Dpf8AyE9R/P6CuW3j0P6f419R/sVf8l7tf+yf+OP5Cg6MupQxeY4LDVHUhCviIUakqU+Sp7Ob9+MZ8r5eayu7PbYf4b/Zn+N2n2c32j4ezQ3V5cf9Bjw7/wAeJ/Idvw9ulb3/AAzn8bpM5+H2p+3/ABONOPJ6fX261+p8cfXJ/T9B/n04rUjj6fmP8T+n8vas/aeX4/8AAP1nCcK4OnRpUFUxfs4X5F7WnHlT5b/BShfZfFe1r6bP8l/+Gavjx/0T7Uv/AAceHP8AGnf8Mx/Hz/onOpf+Dfw7/hX64Rx/QYH5f/X/APr81qRx/U5P5/8A1v8A6/NHtPL8f+Ad0eD8BP8A5fYt2t/0Cu2q/mws7fD0ttreyR+Og/Zb/aCk6/C/UvT/AJDHhw+/0/n+FRf8Mp/tGSf80w1L2/4nHh0+3PT88fjX7NRx9PzH+J/T+XtWpHH1yf0/Qf59OKPaeX4/8A7afAGWzt/tOPhf/n28DHRcu98E72tptZb+f4mH9kv9pGTj/hVepduf7Y8O/h/h0qL/AIZE/aW/6JLqX/hQ+Hf/AJc1+4Ucf1OT+f8A9b/6/Nakcf0GB+X/ANf/AOvzR7Ty/H/gHpYfw1yifxYrMtbW/e4R22/5+YOe+2ltLXT0S/CM/sd/tQSf80l1L8fEHh3P/p4x+H4186eIND1nwnr2veEvEFr/AGb4j8N6hf6JrFj/AMS68+y33cf5/Xof6e7eP8P5/wA/f07+1fzlftKSf8ZG/Hnv/wAXQ1zjp7f/AFj/AJzUZc19LWPk+OODsDwzgMuxWCxOY1J4vH/VpwxWIhVp+zhhq+IknCFKmpc3sVB3eikpLZxl5BJJ9Bgfl/8AX/8ArcVQkk/z2A7knj/P6xSSfU5P5/8A1v8A63FRSSY9sYycdP5+v+e1H5nKXLbS9ybefQfr/jRVDzPb9f8A61FBPtPL8f8AgH01JJ9Bgfl/9f8A+txVCST/AD2A7knj/P6kkn+ewHck8f5/WKST6nJ/P/63/wBbig5ZS5raWsLvPoP1/wAah3j0P6f41FJJ0wPXv+p/z681Vkk+gwPy/wDr/wD1uKCSbzPb9f8A61VJJP8APcnuSef8/ovm+6/n/wDXqHzPb9f/AK1ABJJ1/EH/AAH6/wA/eopJP89gO5J4/wA/rFJJ9Tk/n/8AW/8ArcVUmmVFLMVRFVmZmYKqqoJLuSQAoAJJJAABJOKCZStbS9y3JJ9Tk/n/APW/+txXF+PfHvhv4a+EtZ8a+K7t7PQ9DthPcvHGJbmeWWVLe0srKDenn3t9dSw2trEXjRppVMssUIklT5z1f9tn4CWGrXmkW2vaxrsllO1vNfaFoF9e6ZJNGxSQWt7ILaO7iVlIW5thJazjEltPNEyyN4X+0R8bPh/8avh5aeFPC0mum8HifSdWuE1HSZbC3ezsrbUVdXkaWRXYTXFu6RYJLIHGCi1LkrOzTfRef6/I+syngzOa2Y5dDNcpzXBZbXxFB4vETwtSjKGEk1KpOLqwtTlKndRnOLUZSUnF25XZ0j/gop4WvPEEVprvw217QPC09ysK+JE1q31W8tYZH2JeX+gR6XaiKGMESXSWerX88cav9nhu5QkUn6E29/a6haWt/Y3EV3ZX1vBeWd1BIssF1a3MSzQXEMqFkkhmhkSSJ1JV0dWBIINfhheeBbdtPMYhTPl45UemOmB9D37dTg/dfw8/ah+GHgL4deCvCuuy+JDqXhzwxo+jXYttCmuolk02xitdkMyzIJY41hWONgBlVXAqYyvo2vXb5H13GXBmWewwNbhHLMa6/tZ0MZhKNTE45Tp8ilTxV606tWlLnThNKSpSc48kKfK+b7okk6/iD/gP1/n71Vkk+pyfz/8Arf8A1uK+bvA37V3wa+IniK28KaNr17Ya/fN5em2OvaTd6UNRmALfZrK6lWSze6YAiK2luIp7ljstY5nyo+h/N/2v0/8ArVpdPZ3Py3MMszHKq0cPmWBxWArygqsKWKoVKE505NqNSCqRjzwbUo80bx5oyje8WlLvHof0/wAareZ7fr/9ajzPb9f/AK1Qbx6H9P8AGg8+UuW2l7iySfQYH5f/AF//AK3FVZJOv4g/4D9f5+9Hme36/wD1qh833b8//r0GIeb7t+f/ANevrX9h+OW4/aEsIo4hNL/wgHxG+nJHHPf0HX0zXyPvPoP1/wAaLfUL/T7r7Vpeqanpt1/x7fbrG41HR70A9v7T0n/PrxQdmX4v6hjsHjPZ+1+qYqlifZ8/s/aey5vc5+WfJzc3xckrW+Fn9Icel3/I+wTcD/n31H/Of8/S/Hpd/wD8+s3H/TvqPt39fbkV/OLpfjjxRp97FLJ4y8VTRTf6Ncf8Vj4i7cdtYI7V6DL4o8Uc/wDFUeKun/Q0+IuPbnWOc+h9az9n5/h/wT9QwnHOHqcz/sqrCcJJTpyxFrX5VFqX1Z3vrpZWst+n9BEel3//AD6zfjb6j09Djp7Afl1q19nljfypCYZYf+WHr2//AF/Xiv545PFHik/8zl4qGf8AqaPEXA9v+Jx7c/y9P3M/Z7kluPgJ8G7q4lmvLqb4f6HdXF9PcfbL26/5CvGp6nq3T65x19RUyjy21vc+24bz6jnmJrYSGElh/Y4WWJdSVb2ilyzow5FD2VO3N7Rty5nbl+F81161HH1yf0/Qf59OK1LOzld/KtIpppf+eEGO3GT3x/n0ojj6fmP8T+n8vavjz9vS8v8AS/2cpbrS7/UtHuv+FkfDm2+0aVq+o6Pe/YTqWq/z4zx+ORUn1+NrLK8sxuZzo+1hgMNUxMqfPyc/Jy2jzuE+Tm1fNyyta7i76fcMej6p/wA+Go46jNvqP49f6/0q/HomqD/lw1L2H2fUM/8A6vpz15r+XCTxh4y/6Hfxt/4XHiLn2/5DI/U+vFRSeMPGXfx58QufXxx4z46Yz/xOOfxraMeW+t7nw8PFzA03FvhnETttfN8FHpH/AKdy7WfzR/VRb6Pqnaw1L2/0fUc/54P5fSv5ov2oPOj/AGlvj71/5Kx4q9v1xj69P8fKpPGnjL/ofPHn0/4Tjxnn6/8AIY/n74rnLi8lvLmW6vLqa8upv9JuL6+uNRvb26vv+gjqep6tj+1vb60Rjy31vc+W4249w3FeAwGBo5TiMt+qY14yVWtmVDHe1/2Wvho04Qo0afsre3c5TlN35VGMGrygSSdMD17/AKn/AD681Vkk+gwPy/8Ar/8A1uKikk/z3J7knn/P6RSSdfxB/wAB+v8AP3qj81lLltpe4eZ7fr/9aiq28+g/X/Gign2nl+P/AAD6a3j0P6f41W8z2/X/AOtUMkn0GB+X/wBf/wCtxUfm+6/n/wDXoMySST6DA/L/AOv/APW4qrJJ1/EH/Afr/P3okk6/iD/gP1/n71FJJ/nsB3JPH+f1ACST/PYDuSeP8/rHvPoP1/xqpJJ0wPXv+p/z681FJJn3zjJx1/l6f57hjKXNbS1i1vHof0/xryL44XUtv8Gfi5PBI8M0Hww8fTQyxsUkhlj8K6s8ckbKQyyI4VlYYIYAjnFem7x6H9P8a5nxjoFt4y8I+KfCF5cy2lp4q8Oa54buru2EbXNrba5pl1pk9xbrKGiM8MV00kQkVozIqh1K5BDpy+rToY/A1638GjjMNVq+7zfu6daE5+6ruXuxfurfY/Bv4daTpkttAXEbMVUkHBJJJ+Zt3BPGcnqTnOTXv1npVrFtMYUHtjH1IHHHAxwMjHX09q1P9hiTwtpNxd/D3xzqWparaRPNDoviKzsYrfUjGC32SDUbM262M8gG2B7i2nt3lKxzyW0TNPF87eHdVmn3Q3McsFzbyPBcQyqY5YZ4mMckUkb4dZIpAUKuoYYKtyKwaa3P6PrZ5l/EP1nGZPmEsXRpVIxr05U61CtR9om4c9KtCEuWai+WceaDcZQUuaLR2UtshTbgYPHofwx0/L8q5+88PWtyrlokYkHsOSe+OfbsPXA79GJsgHd1Gen/ANaoy+QRjqMdf/rVahdav0af3aNdDzYYipTlzU5yjqrvW+nmmfPl74c/szxr4P1CxDW9xZ+LPD1zBNCSkkckGr2ciSKygMHUqChzuU85BANfuq8hwPoPw/8Ar/8A1uK/HLVrYxXtjqSQiaTTr21v0iY7VkazuEuEjLYYqHKbGYKSudwBIIr37Tv277aw16z0/wAb/D6TR9CuLiO3uNe0jXH1OXTQ7KguZ9Km0q0e6to8+ZcG2vPtKRKxgtbqTZE7j7t7vd28vv8Av37Hicb5RnfFdDJpZXg3jp5bh8d9YjGth4VrVXhZwjTpVqtOpXl+7qONOjGpNybUYuUkn+g0knX8Qf8AAfr/AD96h833b8//AK9QW19b3ttb3lpOlza3cEVzbXEMiyQ3FvPGssM0UisVkiljdXjdSVZGDAkEVJvPoP1/xqz8LaabTTTTaaas01o009U090G8+g/X/GoZJMe2MZOOn8/X/PY3j0P6f41QuLiKNJZZAPKh/wBJuPf8PX/9dAibzPb9f/rVDbiXULn7BZwzalfj/lxsbbUdYvfw0zSfT1/HFfoHoH7Nfw1+DfwcHx8/aPtdW8YTTQaFc6R8JPDtx9jsvtvif/kWtO8S6kMZJyFBJwM7jnG1vEtT/a8+KtnDLY/Cuw8E/AHw4cWtvY/Cvwvp9nrNrYjP/IT8S6to/wDbQOT1AycAEnAo/r/h+39dz3K2T0suhSnnWN+pVcRRhiMPgMLh/r+Y1MPUvyValN1sJgcPzpe5Sr5hCvpLnpU7Jy5fw/8Asx/tGeKIYrnS/g342hsOv9q+I7fTfDdkBzz/AGn4t1jQCfy7da9U0r9mTx5Z2ccPjf4gfALwTLB/o9x/a3xf8PXd7nH/ADE9M8KDXge/Q/WvlHxH408ZeMJZb7xf438VeKrqYYuJ/EfiDUdY4AHTTNW1jHt/TFY3h+O1tryWKO1hh+2W/H+j9f8AP6cdaB4bGZLhqq9nluY4j2/7lzxeaYOnzc1rTqYXA4OVuVXtGpWd3J8klafN9kf8KP8AhpZ/8hj9r74A2eP+PiHStH8Z6vnp+PcdePTiv2K+BWmaVpnwZ+Fel6H4kh8Y6NpngjQ7bR/GFjb6jpFn4nssapnUdM0wdOCDzzgjHUV/O/JJn3zjJx1/l6f57/0L/szx/wDGN/wH7D/hW+hn6e/uPX3z9azqdPn+h+weHFbDYvNMdDD5dRwfJgPaTnCviq9WtavR5VVlia1W/LaXI4Kny80uZT93l9pjjz75zgZ6/wAvT/Pf5e/bQ8L+HPEnwIk0bxZ8R/Dfwl0b/hP/AARc/wDCU+I9H1C80U3ul6jqn9maf/ZelAsTruQOCB8xznivrWOP/PYDsAOP8/r8O/8ABRmLy/2Yb4evxP8AhZ/6cvFP+ex9qmMuW+l7n6nxLClheF8+rVcPTxNOGU42U8PVnXhTrUoUvaypylh61GrHmdNRUoz9y7fLI/NS3/Zv8J6yf+JB+2F+y7qUp/5YarrHjPw3/wCnbR/p1yPapf8Ahiv426hn/hE9Z+BvxCH/AFI/x48GXl7ddv8AqX+Px+vt8jP5WD5uf8+vf1/X3qhJZ6fv837LCJef3/2f/TR19/8APWtj+Zv7SyKX8Xh3E0/5f7Nz/GUOS7V7RzbD55SV9Pgpw0T5/aWjyfQXjD9mf9pHwHDNJ4s+A/xN022hANxqkHhfUPEll6f8hPwn/b/0/TrmvApbiL7TLp8n7m/h/wCPixnxaXtr1/5Cemat6D6/yNd54P8Ai58Wvh3N5vgD4q/EfwSOQRofjjUrOyPTP/Es1bWP8k8ivpHR/wBuCXXPKsP2vPhf8Pf2kPh9Dgaxrl74X07w38XNBsdL/wCYjpnibSf7AGq/+W9+HNA6OG4Qx/KoZnm3DlWdoxnnWEwubZQqkrcnts2yeGGzKnTVnzyjw9i6juvZUXyzv8WySf57AdyTx/n9aEknTA9e/wCp/wA+vNfpp+2H+wjovwj8CH4+fAfXtX174QzW2ian4g8LeIj9t8T+DtC8TEDTfEWl6nq3Oq6SrEA6Hr44OACTwPzBkk+gwPy/+v8A/W4oOPiXhvOeEczllOd4anRxPsaWJoVaFb2+FxeFrX9lisJX5Ie2w9XllyVFCOzhNQrQq0qc3me36/8A1qKq+b7r+f8A9eig+bPp+ST/AD3J7knn/P6VPN92/P8A+vSySf57AdyTx/n9YpJPqcn8/wD63/1uKDaUuW2l7i7z6D9f8ah3j0P6f41Vkkz75xk46/y9P894d49D+n+NBnKXNbS1iaSTPvnGTjr/AC9P896skn+e5Pck8/5/Qkk/z3J7knn/AD+kUknX8Qf8B+v8/egkPM9v1/8ArVW3n0H6/wCNJJJ9Tk/n/wDW/wDrcV5N8bp3T4MfF10kZHT4YePmR1yrK6+FNWKsrAAqykAhgQQQCCDQdGEw/wBbxeFwqn7N4nEUcPz8vNye2qxp8/LePNy81+XmV7WutzsPF/jPw54I0a617xPq1ppOnWkbuZLiRFluJEUstrY25PnXt7McJBa26STSuwVV5yPyCtdW/trxB4g8RNb/AGJdf17V9bW0JANsmq6jcXwgJGFPkibyxg4JUYPTPjHgTSIbiGK8vZpLiYqpL3ErSN0zt3SMzBQQcANjJGcHr6poumax4q8R6Z4O8JWovda1SVo4I2cRW9tFEjyXN7ez4YW9nawo8s0m1iFURwxyzyRRPi3zdLW+93a/r7z+gMp4TwfCcMypf2jLGVKsFLFY2rRjgsNh8NheapK0HWrpJc0p1atSs04wjyxppScvRTqNuQo3AZwOoJJxnoCfTvj/ABkWeNxlTkfh9fX059u9ei6l+yT8QLHSHv8ATPGeiaxrcMPnHQzp11p1tPIi7mtrTWZLuYvK+DHbvd6fZQu7L58lshZ0+c9I1yVZrmw1BJrLULCeezvbS5Uxz2t3ayNBc288bENHLBNG8ciMu5XRlI4zVqTVlJJdnf09fvZjhK2XZpSrVcpzClj1hpRjiIwjVpzpczahKVOtTpVOSbjJQqRjKnNxajJ2ZtaxqEUCMWJJxgAckt06DrknoOTnjrXhupeE/GPxG1628M+EfC+r6rqN7PHDujsLlLS0RpArXWoX0ka2tjaRDLy3N1LFFGByxJArv9S1xIfEnhpEcHd4h0VOuc7tSth0z3Jx3zgemK/aJXGBweg9PT60uVyvdvR2t93ruvXzbMc44prcFQy+tSy6GMxGYUsTOjOvXnRpYeph/YKMp0oUpSrxbrJygq1F+7bn9665nwToR8J+DPCPhWS4N5J4Z8MaB4fe7wR9qfRtKtNOa5w2GHntbGXDDPzc81veZ7fr/wDWo8z2/X/61Qbx6H9P8a02P5/rVZ16tWvUfNUrVJ1akrJXnUk5zdlZK8m3ZJJbLQN49D+n+NRyeVIhik/1U3txn/PfgfpS+b7r+f8A9eqfm+7fn/8AXoMZS5baXufop8E/21PC9n4Ji+EH7Rfhybxh4Nh0f/hG7fxVBo/9sC68K6WP+JXp3jnwNn/ibe+uaD6Hv16OT9kP9mn4yebqv7Of7Q+g6DdS4z4N8Ravp3iSytsDnA1b+wPG+k/QE/4/mLvPoP1/xqhJb2sjxSSRQ+bD/wAe8/8Ay+5z9ev+egzQfT4fir2mHo4XO8pwWd0sPTjQw1epVxWCzDDYeHw0KGNw1VctNdp0altOXl97m+9PFH/BOf8Aac0PMuj2HgnxtYf899K8Uf8ACN3t12/5Bni3Rx9fXj6143efsp/tQeG7mKW8+A/xImihuf8AX6Vbad4ksuvppOs/hgc4/Tyrw38WPi14H/5Ev4qfEjw35P8Ax7wWPijUPsX/AILNW1j8cHjNe5+H/wBuT9q/Rpooo/i9qWsReeB/xVXh/wAO6x7ccenbH6UG0a3Ald06k6PFWV729jjcrzSnTXu3Sr47DUqlRvS9pKz33RxOqfDf4oaWf+Jp8NPiRZ/9fHgfxF6Z/wCgPzj1r9CPhV+3Zp/wv+F3w++HOsfs+/GDUtQ8B+GLDw3c6rB/odlqnHb/AIk/HHPpxnrXkOnf8FJ/2oNL/wBZdfDjUvafwP8AYx+P9k6x0/8Ar1+yfwN+IHiP4mfBz4YfEXXHhg13xr4H0PxHq0Fj/aH2G2vdUGqfdwThRkjHGCp7YJxlLm6Wt5+h+q8A5Zg8Rj8auFOKMxweIWEp/WYZpwvga1OGGlisPCHJVrYyXJ/tMqDmowjzWineyt8DR/8ABTjwuf8Am3P4wZJ/6CGnY/TR/wBR+fWvDP2mP2uJv2kPhXL8NPC/7Pvxs8N383ijwr4kOq32j6jrFl9h0v8AtXp/ZOjn0/LFfuFHcXXP736+/wDh/Lr04r5s/a/+PXj/APZ2+CE3xL8BjTLvXo/HPgfw7BB4o/tC7szZ6pqGqLk453YAG7qAAM5xWkZc19LWt5/5H6JnORcQRyPN6mecdSeURy6vLNFg+DsreIlly9m8TCk/rmtSXucsLe/Zq6sfz6aX8E/jfrn/ACB/gj8WtSx/zw+H3iKz9f8A9XvnvXpeh/sP/tfeJOLP4BeNtNIx+/8AFVx4d8N2Xbj/AJDHr/nOa9V1j/gp5+19qn7m38R/D3R+3+g/D/1/7C+sdvwryDXf25P2udc82O9+PvjbTYh0g8LW/h3w3g8dP7I0f+WPbvij8H9j4YUvizDjbMue3LGhheGsFTna20KmYZh7PfpJ33d7WPovwp/wSk/aX1eNpvGniL4ZfDOxAz517rGo+ML4n0B0shc56ZYDnkjrXruhfAj/AIJ2/sqahZ+I/jh8cdO+OfjrQpzd6f4Q/wCJd4jsrO9AHGnfDD4fnXX1RiScDx5rzYCncQSBX5F+KPHfjzxw/m+OPiD8Q/GEsx/0j/hI/FHiLWLL/wAFmrax6e/0rjY47WzQw28UMMX/AD7wYs/T/Pv1oOvDcZcHZLOnisg8P6eJzHDzhUwuYcY55juIKUKkE7VHk1FYPLZVIt80KvtatSnNQlSnStNVf0b/AGwv+Cg2s/tH6JdfC/4f+HNS8B/CCXULO61+fxDPp918QPiMNM1PdpmnaouTonhTwn0J0Y5YksRjcRX50ySf57k9yTz/AJ/SKSTr+IP+A/X+fvVWST6nJ/P/AOt/9big+L4l4nzvivM6mc8QY6pj8wq04UedxhRw+Hw9G/scNg8LShGlhcPSc58lOF7355udaVSrUteZ7fr/APWoqhvHof0/xooPA9p5fj/wD6g3j0P6f41Vkkz75xk46/y9P89z97I/kx/vpc+g+vrjHP8APpWhFo91J/rP3OM/9fv+eO/ag6IUp1L8iva1/ne35Myd49D+n+NVvM9v1/8ArV10ejWEf+s8+ftnH+f/ANf1NJJo+lyf8sgPrcH1zxnt/n0oN44GvK9nSVrb1Lb229133t93c4nefQfr/jUO8eh/T/GutvPD5x/ocv73P+on69P849K424jls38qWHyZYekGP0/n+XpQY1aNWi0qkeW9+Xzta/RbXQSSdMD17/qf8+vNcz4y0G38X+E/E/hO7nkt7TxR4e1rw7dXMShpYINa02502aaJCVDSRR3LSICyhmUAkDmtvePQ/p/jVbzPb9f/AK1BjSxFSjVp1qTcKtKpCrTmmrwqU5KcJK6avGSTV01pqj8bR+yx+0n4XvLvTNN8H2fiSxt5ZIrXWNM8VeFbO1vYQSIpkt9a1nTNRi3KAWjuLOJ0JK/OMsfoX9k74NfF3wF8SvEHib4keEhoenXHg+80rTLltd8NasTf3Os6NdNEsWjaxqVxEz2tnOfOeKOIKrRmUNIEf9B/N92/P/69M3n0H6/41Cgk09dPT/I+/wA08Ts8zfLcZluKwGSQjj6Cw+IxVDC4yni3HmhKU4t5hPDwqTcLSth+S0pKMIq1jefQfr/jX5R/Fz4B/HvVfi9468R+EPAv9o+GtZ1o3+m3UfibwdYfaFmtbY3M32XUPEFpeRNJdi4ZxcW8Ts5Z9pVlJ/VbePQ/p/jVbzPb9f8A61U1fvvfQ+d4a4nxvC2KxOKwWGwOKlisK8LUp5hTxFWkoe1pVlOEcPicLNVVKkoqTnJKMprlu01+TXgD9lT41a7498OX/j3Rbbwh4Y0bV9P1jUp5te0LVr2/i066iuhp9hb6FqOplJ7t4lhaW7a3t7eN3uA00kS2036vb1HY/p/jRvHof0/xpnm+6/n/APXoSt3+f9eRXE3FeZcVV8LVx9PB4eGCozo4bDYGjUo4emqklKrO1atiK0qlVxhzOdaSShFRjFJ3PN91/P8A+vUPme36/wD1qPM9v1/+tUPm+7fn/wDXpny8pcttL3Dzfdvz/wDr0zefQfr/AI0bz6D9f8ah3j0P6f40GIbx6H9P8areZ7fr/wDWo8z2/X/61Qbx6H9P8aADePQ/p/jU2nnzLyL/AKY5ufTGOKqVoaX/AMtbrP8A06236Y//AFD2yKDSguevRhe37yM77/BKKtbTfm3vpbZ3N6ST6DA/L/6//wBbiv6Yv2S4/wDjFr9njrz8J9D/AB57f/q6AevP8ycknX8Qf8B+v8/ev6e/2R4v+MV/2eOP+aT6Hx/ic9Px6n85lLltpe5/Qngb7/EOc9OXI+bve2a5bp0se+xx9PzH+J/T+XtXwV/wVAPl/snXPqfiz8K+g/6iOqjvX6Exx9cn9P0H+fTivz6/4Kmfu/2Rrr/ssHwr9+TqOq/59M+1Z0/4sPn+h++8c0PZ8C8Wy2tw3mzt3th/w3+62iP535JM++cZOOv8vT/PeKST6DA/L/6//wBbiopJP89ye5J5/wA/pFJJ1/EH/Afr/P3rY/gyUua2lrEskn+e5Pck8/5/ShJJ9Tk/n/8AW/8ArcUSSfU5P5//AFv/AK3FRSSY9sYycdP5+v8AnsGPtPL8f+AEkmPbGMnHT+fr/ntFJJ0wPXv+p/z681FJJn3zjJx1/l6f57xSSfQYH5f/AF//AK3FBjKXLbS9ybzPb9f/AK1FZ/me36//AFqKCfaeX4/8A+3P3Uf7qP8Acxf56/kfw/IR+Z7fr/8AWqGST55R+nt/nnr2x3qPzfdfz/8Ar0H00Zct9L3LXme36/8A1qPM9v1/+tVXzfdfz/8Ar0eb7r+f/wBeg0jLmvpaxa8z2/X/AOtWfqlnFqFt5X+plhP+jz88/p19c9+tTeb7r+f/ANeofM9v1/8ArUBKMZxcJrmhL4o7c1ttdbdVt1PL7iOazeWKSLyZYf8Aj4g/l/IfSofN92/P/wCvXoWqafFqkZ/5Y3UP/HvP3z/+vH4fhXnNxHLbvLFcReTLD/x8Qc/ocfj29aDw8XRlRmlfmg78lS3Lz2tf3bu1rrq9xd59B+v+NUPM9v1/+tR5nt+v/wBaoN49D+n+NByhvHof0/xpnm+6/n/9ejzfdfz/APr1D5nt+v8A9agA8z2/X/61Q+b7t+f/ANejzfdvz/8Ar0zefQfr/jQYylzW0tYN59B+v+NQ7x6H9P8AGoqj8z2/X/61BIeZ7fr/APWqDePQ/p/jRvHof0/xqKgB3m+6/n/9eofM9v1/+tR5nt+v/wBaq28+g/X/ABoAs/6z9zj97+Xp/n0/Sujj/dpFFn/U+nf8/wDOT1xWNp9v5f8ApT/63n7PyB09fX/PXkVakk6YHr3/AFP+fXmg78NBxUm/tctvlfr8y1JJ9Tk/n/8AW/8ArcV/Uf8Asdx+Z+yf+zn/ANkn0P8Az/j39K/lhkkz75xk46/y9P8APf8Aqt/Yzjz+yX+zcOv/ABZ/Q+On+Hv+lRNXV+362P6D+j3yz4kz68dshT3/AOprl3lofRkcfT8x/if0/l7V+dn/AAVYj8v9kK6H/VYPhWf/ACo6rwOPf/PSv0ijjz75zgZ6/wAvT/Pf84v+CsEXl/shy/8AZYfhX9cf2jqvpx3FRT/iw+f6H9E+IFLk8PuMpWt/xjWa6a63wz18vzd7ux/OLJJ1/EH/AAH6/wA/eqEkmPbGMnHT+fr/AJ7EkmPbGMnHT+fr/ntFJJ0wPXv+p/z681sf53SlzW0tYJJOmB69/wBT/n15qKSTPvnGTjr/AC9P894d49D+n+NVvM9v1/8ArUGcpcttL3LUkn0GB+X/ANf/AOtxWf5vu35//Xo833b8/wD69M3n0H6/40GJLRVeigz9p5fj/wAA+1JJPnl/z26fzzx1qHzfdvz/APr1HJJ88v8A189f89u34jpUW8eh/T/Gg+sLPm+7fn/9ejzfdvz/APr1W3j0P6f40bx6H9P8aALPm+7fn/8AXo833b8//r1W3j0P6f40bx6H9P8AGg2jLmvpaxNvPoP1/wAaytU0u11RP+eN1D/x7z+38+n+cVf3j0P6f41W8z2/X/61ASjGcXCa5oS+KO3NbbXW3VbdTym5jlt3urS4i8maHP2iDrnp+I4/Oqvme36//Wr1DV9Ki1S25/c3UP8Ax7z56c9/r+leYXEcts8tpJF5MsP/AB8d/wA+3HcemPTNB4OIw8sPKPvc8J35J25ea1r+7eVrc0er38iDzfdvz/8Ar0zefQfr/jRvPoP1/wAah3j0P6f40HnhvHof0/xqt5nt+v8A9ajzPb9f/rVBvHof0/xoAfUPm+6/n/8AXptR+Z7fr/8AWoAPM9v1/wDrVHUW8+g/X/GhI5JP9WSOOen19f8APrQAbz6D9f8AGr9nZgZlvOv/AC7wen/6vz/SpLeziTEsv76X+fX/AD6dfapZJM++cZOOv8vT/PcOulh72nP5Lyfnf06bksknTA9e/wCp/wA+vNVZJPoMD8v/AK//ANbiiST6DA/L/wCv/wDW4qKST/PcnuSef8/oG8pc1tLWCST/AD3J7knn/P6fXPgf9vj9q/4ZeDPC/wAPvB/jzw3pvhLwVo9jonh/SrjwP4MvL21scAaZp2p6n/8AW7HtXxvJJ9Tk/n/9b/63FRSSY9sYycdP5+v+ewdeWZ7nOSVqlfJc0x+U1a9J4fE1MvxeIwtTEYd1KdV0Kk6FWnzU3VpU5uM1P4bR5btv7w/4ec/ts/8ARSvC3/hp/Bv+NeU/GD9s/wDaR+Pfgz/hXPxX8b+G9e8G/wBsWOufYdK8EeHvDd79u0znTNR/tLSf06dABwAK+YJJOmB69/1P+fXmqskn0GB+X/1//rcUHqYzjjjLH4XEYHGcWcS4vB4ulLD4vC4nPc0qYfE4epb2lCtThiqXPTnyrmTl00td3lkkz75xk46/y9P894d49D+n+NVvM9v1/wDrVD5vu35//XoPkJS5raWsTeZ7fr/9aofN92/P/wCvTN59B+v+NQ7x6H9P8aDOUuW2l7k28+g/X/GqHme36/8A1qPM9v1/+tUG8eh/T/GgzlLmtpaxboqj5vuv5/8A16KCT//Z"
				image.src = $('#src').val();
				if(!image.src) return;
				image.onload = function() {
					c.width = image.width;
					c.height = image.height;
					ctx.drawImage(this, 0, 0);
					//获取所有色素，并比较左右相邻色相亮度
					for(var row = 0; row < c.height; row++) {
						for(var col = 1; col < c.width; col++) {
							var pixel1 = ctx.getImageData(col, row, 1, 1).data;
							var hsl1 = rgbToHsl(...pixel1);
							var pixel2 = ctx.getImageData(col-1, row, 1, 1).data;
							var hsl2 = rgbToHsl(...pixel2);
							if(Math.abs(parseFloat(hsl2[2])-parseFloat(hsl1[2]))>20) { //亮度差20
								xArr.push(col);
							}
						}
					}
					xArr.sort((a,b)=>a-b);
					console.log(xArr)
					for(var i=0;i<xArr.length;i++) {
						if(xArr.filter(item => item==xArr[i]).length>5) {
							alert(xArr[i]);
							break;
						}
					}
				}
				//点击显示颜色
				c.onclick = function(e) {
					var x = e.clientX,
						y = e.clientY,
						x1 = this.offsetLeft,
						y1 = this.offsetTop,
						nowx = x - x1,
						nowy = y - y1;
					var imagedates = ctx.getImageData(nowx, nowy, 1, 1);
					var pixel = imagedates.data;
					var hsl = rgbToHsl(...pixel)				
					document.getElementById("color").innerHTML = hsl;
					//文字颜色反色
					document.getElementById("color").style["color"] =
						"rgb(" + pixel.slice(0,3).map(item=>255-item).join() + ")";
					document.getElementById("color").style["background-color"] =
						"hsl(" + hsl.join() + ")";
				}
				
				function rgbToHsl(r, g, b) {
					r /= 255, g /= 255, b /= 255;
					var max = Math.max(r, g, b),
						min = Math.min(r, g, b);
					var h, s, l = (max + min) / 2;

					if(max == min) {
						h = s = 0; // achromatic
					} else {
						var d = max - min;
						s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
						switch(max) {
							case r:
								h = (g - b) / d + (g < b ? 6 : 0);
								break;
							case g:
								h = (b - r) / d + 2;
								break;
							case b:
								h = (r - g) / d + 4;
								break;
						}
						h /= 6;
					}
					return [Math.round(h*360), (s*100).toFixed(2)+'%', (l*100).toFixed(2)+'%'];
				}
			}
		</script>
		<!--<script type="text/javascript">
			//网页测试代码
			function getX(src) {
				var xArr = [];
				var c = document.createElement('canvas'),
					ctx = c.getContext("2d"),
					image = new Image();
					image.src = src;
					image.onload = function() {
						c.width = image.width;
						c.height = image.height;
						ctx.drawImage(this, 0, 0);
						
						for(var row = 0; row < c.height; row++) {
							for(var col = 1; col < c.width; col++) {
								var pixel1 = ctx.getImageData(col, row, 1, 1).data;
								var hsl1 = rgbToHsl(...pixel1);
								var pixel2 = ctx.getImageData(col-1, row, 1, 1).data;
								var hsl2 = rgbToHsl(...pixel2);
								
								if(Math.abs(parseFloat(hsl2[2])-parseFloat(hsl1[2]))>20) {
									xArr.push(col);
								}
							}
						}
						xArr.sort((a,b)=>a-b);
						for(var i=0;i<xArr.length;i++) {
							if(xArr.filter(item => item==xArr[i]).length>5) {
								console.log(xArr[i]);
								break;
							}
						}
					}
				function rgbToHsl(r, g, b) {
					r /= 255, g /= 255, b /= 255;
					var max = Math.max(r, g, b),
						min = Math.min(r, g, b);
					var h, s, l = (max + min) / 2;

					if(max == min) {
						h = s = 0; // achromatic
					} else {
						var d = max - min;
						s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
						switch(max) {
							case r:
								h = (g - b) / d + (g < b ? 6 : 0);
								break;
							case g:
								h = (b - r) / d + 2;
								break;
							case b:
								h = (r - g) / d + 4;
								break;
						}
						h /= 6;
					}
					return [Math.round(h*360), (s*100).toFixed(2)+'%', (l*100).toFixed(2)+'%'];
				}
			}
		</script>-->
	</body>

</html>